package situ.autoweter.service.impl;
import java.util.*;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.alibaba.fastjson.JSONObject;
import situ.autoweter.entity.SyArea;
import situ.autoweter.entity.UsUser;
import situ.autoweter.service.RdVolumeService;
import situ.autoweter.dao.RdVolumeDao;
import situ.autoweter.common.Assist;
import situ.autoweter.entity.RdVolume;
/**
 * RdVolume的服务接口的实现类
 * 
 * @author 
 *
 */
@Service
public class RdVolumeServiceImpl implements RdVolumeService {
	private final Logger LOG = LogManager.getLogger(this.getClass());

	@Autowired
	private RdVolumeDao rdVolumeDao;
	// TODO 当你看到这个方法时你应该创建一个工具类做通用的方法,定义自己的返回格式化
	private static final int C200 = 200;
	private static final int C412 = 412;
	public String resultFormat(int code, Object data) {
		JSONObject result = new JSONObject();
		result.put("code", code);
		if (data != null) {
			result.put("data", data);
		}
		return result.toJSONString();
	}

	@Override
	public List<RdVolume> find(RdVolume value) {
		//TODO这里可以做通过Assist做添加查询
		List<RdVolume> result = rdVolumeDao.selectRdVolume(null);
		if (LOG.isDebugEnabled()) {
			LOG.debug("执行获取RdVolume数据集-->结果:", result);
		}
		return result;
	}
	@Override
	public RdVolume findOne(Object id) {
		if (id == null) {
			if (LOG.isDebugEnabled()) {
				LOG.debug("执行通过RdVolume的id获得RdVolume对象-->失败:id不能为空");
			}
			return null;
		}
		RdVolume result = rdVolumeDao.selectRdVolumeById(id);
		if (LOG.isDebugEnabled()) {
			LOG.debug("执行通过RdVolume的id获得RdVolume对象-->结果:", result);
		}
		return result;
	}

	@Override
	public String saveNotNull(RdVolume value) {
		if (value == null) {
			if (LOG.isDebugEnabled()) {
				LOG.debug("执行将RdVolume中属性值不为null的数据保存到数据库-->失败:对象不能为空");
			}
			return resultFormat(C412, null);
		}
		int result = rdVolumeDao.insertNotNullRdVolume(value);
		if (LOG.isDebugEnabled()) {
			LOG.debug("执行将RdVolume中属性值不为null的数据保存到数据库-->结果:", result);
		}
		return resultFormat(C200, result);
	}
	@Override
	public String updateNotNullById(RdVolume value) {
		if (value == null) {
			if (LOG.isDebugEnabled()) {
				LOG.debug("执行通过RdVolume的id更新RdVolume中属性不为null的数据-->失败:对象为null");
			}
			return resultFormat(C412, null);
		}
		int result = rdVolumeDao.updateNotNullRdVolumeById(value);
		if (LOG.isDebugEnabled()) {
			LOG.debug("执行通过RdVolume的id更新RdVolume中属性不为null的数据-->结果:", result);
		}
		return resultFormat(C200, result);
	}

	@Override
	public String deleteById(Object id) {
		if (id == null) {
			if (LOG.isDebugEnabled()) {
				LOG.debug("执行通过RdVolume的id删除RdVolume-->失败:id不能为空");
			}
			return resultFormat(C412, null);
		}
		int result = rdVolumeDao.deleteRdVolumeById(id);
		if (LOG.isDebugEnabled()) {
			LOG.debug("执行通过RdVolume的id删除RdVolume-->结果:", result);
		}
		return resultFormat(C200, result);
	}

	//统计报表全查
	@Override
	public List<Map> Show() {
		List<Map> list=rdVolumeDao.Show();
		return list;
	}
	//周检报表全查
	@Override
	public List<Map> find2() {
		List<Map> list=rdVolumeDao.find2();
		return list;
	}
	//统计报表根据年份查询
	@Override
	public List<Map> query1(String r) {
		List<Map> list=rdVolumeDao.findOne(r);
		return list;
	}
	//周检报表根据月龄查询
	@Override
	public List<Map> queryByYF(int number){
		List<Map> list=rdVolumeDao.queryByYf(number);
		return list;
	}
	//循环出数据库年份
	@Override
	public List<Map> queryYear() {
		return rdVolumeDao.queryYear();
	}

	@Override
	public List<SyArea> areas() {
		return rdVolumeDao.queryArea();
	}

	@Override
	public void updateVid1(Integer hi, String i) {

		rdVolumeDao.updateVid1(hi,i);
	}

	@Override
	public List<UsUser> queryIsNull(Integer hi) {

		return rdVolumeDao.queryIsNull(hi);
	}


	@Override
	public void updateVid2(Integer hi, String i) {


	     rdVolumeDao.updateVid2(hi, i);
	}

	@Override
	public void update1(Integer id) {
		rdVolumeDao.update1(id);
	}
}
